A Design Pattern Detection Technique that Aids Reverse Engineering

نویسندگان

  • Hakjin Lee
  • Hyunsang Youn
  • Eunseok Lee
چکیده

If software design-patterns could be captured and reused then this would be very helpful to reverse-engineering often practiced by those who develop and who maintain software. The ad-hoc nature and informality of this reverse-engineering process however, makes the discovery of these patterns not straightforward. Moreover, a high false positive rate results from trying to detect these design-patterns. Although several static and dynamic analysis approaches have been proposed to overcome these difficulties, each technique cannot be used separately because of different reasons. And, even if this were possible, each technique in isolation cannot address detection of all of the important patterns. We propose a new taxonomy of GoF design patterns that can guide the reverse-engineering process. This new approach not only combines static analysis with dynamic analysis but also adds what we call the implementation-specific analysis. Using it we demonstrate that the reverse engineering process is faster and more accurate.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reclipse – A Reverse Engineering Tool Suite

Design pattern detection is a reverse engineering methodology that helps software engineers to analyze and understand legacy software by recovering design decisions and thereby providing deeper insight into software. In this report we present Reclipse, a reverse engineering tool suite based on Fujaba. Reclipse provides static and dynamic design pattern detection in combination with a pattern ra...

متن کامل

Reverse-Engineering the Literature on Design Patterns and Reverse-Engineering

Since their inception in 1994, design patterns have been the subject of many papers. In the reverse-engineering community, several authors have proposed approaches to consider design patterns during reverseand re-engineering. However, it has been recently put forward in the community that it is difficult to compare previous approaches due to the diversity of vocabulary and the lack of a general...

متن کامل

A Fine-grained Model for Design Pattern Detection in Eiffel Systems Maurice Lebon a Thesis Submitted to the Faculty of Graduate Studies in Partial Fulfilment of the Requirements for the Degree of Master of Science Graduate Program in Software Engineering

Design patterns have been used for many years in order to build software systems whose design has a high level of flexibility and scalability. In the reverse engineering field, detecting design patterns not only simplifies the understanding of the target system implementation but also provides the rationale behind the system’s design, i.e. why was this design used? Therefore, automating the det...

متن کامل

Reverse Engineering State and Strategy Design Patterns using Static Code Analysis

This paper presents an approach to detect behavioral design patterns from source code using static analysis techniques. It depends on the concept of Code Property Graph and enriching graph with relationships and properties specific to Design Patterns, to simplify the process of Design Pattern detection. This approach used NoSQL graph database (Neo4j) and uses graph traversal language (Gremlin) ...

متن کامل

Using Design Pattern Clues to Improve the Precision of Design Pattern Detection Tools

Design pattern detection, or rather the detection of structures that match design patterns, is useful for reverse engineering, program comprehension and for design recovery as well as for re-documenting object-oriented systems. Finding design patterns inside the code gives hints to software engineers about the methodologies adopted and the problems found during its design phases, and helps the ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008